Automated process control systems include a comprehensive set of algorithms, or software-definable process control routines, to control and monitor various processes within, for instance, a manufacturing facility. The control systems can be tailored to satisfy a wide range of process requirements globally or within specified portions of the facility. Conventionally, the control systems include a variety of modules, each having its own processor or firmware, linked together by communication buses to result in a distributed process control system. The distributed nature of the system affords high performance with the capability to expand the system incrementally to satisfy growth or modifications in the facility.
Process control systems generally provide a means by which users can create custom control strategies, e.g., software-definable process control routines. A complete control strategy may be built from smaller components called "blocks," "parameters," and "connections." A block is a software construct used to encapsulate the data and the algorithms of elemental control computations; parameters define the interface to individual pieces of data within the blocks; and connections allow data to flow between the parameters of blocks.
Software used to implement a real-time process controller can be based on different design philosophies. One philosophy is to use an object oriented approach in which the algorithms and data which encompass elemental control algorithms are implemented within encapsulated objects; using this philosophy, the "blocks" are objects whose attributes are contained "parameters" and whose behaviors are the implemented control algorithms. This approach has several advantages, including: close coupling of the control algorithm with its data; the capability for the algorithm, as data owner, to qualify changes to the data; and the capability for the algorithm, as data owner, to "communicate" with system users about the validity of requested state changes.
The object-oriented approach, however, has the disadvantage that it can cause more processing overhead than other approaches. In a pure object-oriented approach, no outside algorithm is given access to the parameters of a block without the intervention of the block itself, which requires the block to execute a subroutine to read or write a parameter. In some cases, subroutine execution is appropriate and the overhead is not significant; in other cases, however, the subroutine execution is wasteful of processing resources.
Therefore, what is needed in the art are systems and methods for providing encapsulated and performance-efficient data references in an object-oriented controller, and a distributed control system employing the same; the systems and methods should provide a means whereby block designers of control blocks can be allowed to select parameter access through subroutine execution or through a less encapsulated, but more efficient, form of access, defined herein as "intimate" access.